﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using RCA1._0;
using System.Collections;
using System.Data;

namespace Royal_1._0_DAL_WS
{
    /// <summary>
    /// Summary description for DAL_WS
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class DAL_WS : System.Web.Services.WebService
    {
        CONGTYDAO daoCongTy = new CONGTYDAO();
        LOAICONGTYDAO daoLoaiCongTy = new LOAICONGTYDAO();
        THANHVIENDAO daoThanhVien = new THANHVIENDAO();
        ChiNhanhDAO daoChiNhanh = new ChiNhanhDAO();
        VanPhongDaiDienDAO daoVanPhongDaiDien = new VanPhongDaiDienDAO();
        ChuongDAO daoChuong = new ChuongDAO();
        DieuLeDAO daoDieuLe = new DieuLeDAO();
        DieuLeSoanDAO daoDieuLeSoan = new DieuLeSoanDAO();
        NganhNgheKinhDoanhDAO daoNganhNgheKinhDoanh = new NganhNgheKinhDoanhDAO();
        TruSoCongTyDAO daoTruSoCongTy = new TruSoCongTyDAO();
        LoaiTruSoDAO daoLoaiTruSo = new LoaiTruSoDAO();
        LoaiNganhNgheDAO daoLoaiNganhNghe = new LoaiNganhNgheDAO();
        ChucDanhThanhVienDAO daoChucDanhThanhVien = new ChucDanhThanhVienDAO();


        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        [WebMethod]
        public int Tong(int a, int b)
        {
            return a + b;
        }


        #region "Thành viên"

        // Tìm theo mã thành viên
        [WebMethod]
        public THANHVIENDTO TimTheoMaThanhVien(int MaThanhVien)
        {
            return daoThanhVien.TimTheoMa(MaThanhVien);
        }

        // Tìm theo mã thành viên
        [WebMethod]
        public THANHVIENDTO TimTheoMaTV(int ma)
        {
            THANHVIENDTO tvDTO = new THANHVIENDTO();
            return tvDTO;
        }

        // lấy danh sách thành viên
        [WebMethod]
        public List<THANHVIENDTO> GetDanhSachThanhVien()
        {
            return daoThanhVien.LayDanhSach();
        }

        // lấy danh sách thành viên theo mã công ty
        [WebMethod]
        public List<THANHVIENDTO> GetDanhSachThanhVienTheoMaCongTy(int MaCongTy)
        {
            return daoThanhVien.LayDanhSachThanhVienTheoMaCongTy(MaCongTy);
        }

        // lấy danh sách giới tính thành viên
        [WebMethod]
        public List<THANHVIENDTO> GetDanhSachGioiTinhThanhVien()
        {
            return daoThanhVien.LayDanhSachGioiTinh();
        }

        // lấy danh giới tính thành viên
        [WebMethod]
        public List<THANHVIENDTO> GetLoaiGioiTinh()
        {
            return daoThanhVien.LayLoaiGioiTinh();
        }

        // Thêm thành viên
        [WebMethod]
        public void ThemThanhVien(THANHVIENDTO tvDTO)
        {
            THANHVIENDAO tvDAO = new THANHVIENDAO();
            tvDAO.Them(tvDTO);
        }

        // Sửa thành viên
        [WebMethod]
        public void SuaThanhVien(THANHVIENDTO tvDTO)
        {
            THANHVIENDAO tvDAO = new THANHVIENDAO();
            tvDAO.Sua(tvDTO);
        }
        // Xóa thành viên

        [WebMethod]
        public void XoaThanhVien(THANHVIENDTO tvDTO)
        {
            //CONGTYDAO ctyDAO = new CONGTYDAO();
            THANHVIENDAO tvienDAO = new THANHVIENDAO();

            tvienDAO.Xoa(tvDTO.IDThanhVien);
            //ctyDAO.Xoa(ctyDTO);
        }
        #endregion


        #region "Chức danh thành viên"

        // Lấy danh sách chức danh thành viên ==> get
        [WebMethod]
        public List<ChucDanhThanhVienDTO> GetDanhSachChucDanhThanhVien()
        {
            return daoChucDanhThanhVien.LayDanhSach();
        }


        // Lấy mã chức danh thành viên
        [WebMethod]
        public List<ChucDanhThanhVienDTO> GetMaChucDanhThanhVien()
        {
            return daoChucDanhThanhVien.LayMaChucDanhThanhVien();
        }

        #endregion

     
        #region "Công Ty"

        // lấy danh sách công ty
        [WebMethod]
        public List<CONGTYDTO> GetDanhSachCongTy()
        {
            return daoCongTy.LayDanhSach();
        }


        // lấy danh sách tên công ty
        [WebMethod]
        public List<CONGTYDTO> GetDanhSachTenCongTy()
        {
            return daoCongTy.LayDanhSachTen();
        }


        // Tìm kiếm theo mã loại công ty
        [WebMethod]
        public LOAICONGTYDTO TimTheoMaLCTY(int ma)
        {
            LOAICONGTYDTO lctyDTO = new LOAICONGTYDTO();
            return lctyDTO;
        }


        // Tìm kiếm theo tên công ty
        [WebMethod]
        public List<CONGTYDTO> TimKiemTheoTenCongTy(String tenCongTy)
        {
            return daoCongTy.TimKiemTheoTenCongTy(tenCongTy);
        }


        // Tìm theo mã công ty
        [WebMethod]
        public CONGTYDTO TimTheoMaCongTy(int MaCongTy) {
            return daoCongTy.TimTheoMa(MaCongTy);
        }

        // Tìm kiếm theo tên viết tắt
        [WebMethod]
        public List<CONGTYDTO> TimKiemTheoTenVietTat(String tenVietTat)
        {
            return daoCongTy.TimKiemTheoTenVietTat(tenVietTat);
        }



        // Thêm công ty
        [WebMethod]
        public void ThemCongTy(CONGTYDTO ctyDTO)
        {
            CONGTYDAO ctyDAO = new CONGTYDAO();
            ctyDAO.Them(ctyDTO);
        }

        // Sửa công ty
        [WebMethod]
        public void SuaCongTy(CONGTYDTO ctyDTO)
        {
            CONGTYDAO ctyDAO = new CONGTYDAO();
            ctyDAO.Sua(ctyDTO);
        }

        // Xóa công ty


        [WebMethod]
        public void XoaCongTy(CONGTYDTO ctyDTO)
        {
            CONGTYDAO ctyDAO = new CONGTYDAO();
            THANHVIENDAO tvienDAO = new THANHVIENDAO();

            tvienDAO.XoaTheoMaCongTy(ctyDTO.IDCongTy);

            ctyDAO.Xoa(ctyDTO);
        }
        #endregion


        #region "Loại công ty"

        // Lấy danh sách loại công ty ==> get
        [WebMethod]
        public List<LOAICONGTYDTO> GetDanhSachLoaiCongTy()
        {
            return daoLoaiCongTy.LayDanhSach();
        }


        // Lấy mã loại công ty
        [WebMethod]
        public List<LOAICONGTYDTO> GetMaLoaiCongTy()
        {
            return daoLoaiCongTy.LayMaLoaiCongTy();
        }

        #endregion


        #region "Trụ sở công ty"

        // Tìm theo mã trụ sở công ty
        [WebMethod]
        public TruSoCongTyDTO TimTheoMaTruSoCongTy(int MaTruSoCongTy)
        {
            return daoTruSoCongTy.TimTheoMa(MaTruSoCongTy);
        }

        [WebMethod]
        public TruSoCongTyDTO TimTruSoChinhTheoMaCongTy(int MaCongTy)
        {
            return daoTruSoCongTy.TimTruSoChinhTheoMaCongTy(MaCongTy);
        }

        [WebMethod]
        public TruSoCongTyDTO TimTruSoNhanThongBaoThueTheoMaCongTy(int MaCongTy)
        {
            return daoTruSoCongTy.TimTruSoNhanThongBaoThueTheoMaCongTy(MaCongTy);
        }
        // lấy danh sách trụ sở công ty theo mã công ty
        [WebMethod]
        public List<TruSoCongTyDTO> GetDanhSachTruSoCongTyTheoMaCongTy(int MaCongTy)
        {
            return daoTruSoCongTy.LayDanhSachTheoMaCongTy(MaCongTy);
        }

        [WebMethod]
        public List<TruSoCongTyDTO> GetDanhSachTheoLoaiTruSoVaMaCongTy(int maLoaiTruSo,int maCongTy)
        {
            return daoTruSoCongTy.LayDanhSachTheoLoaiTruSoVaMaCongTy(maLoaiTruSo, maCongTy);
        }

        // Thêm trụ sở công ty
        [WebMethod]
        public void ThemTruSoCongTy(TruSoCongTyDTO tscongtyDTO)
        {
            TruSoCongTyDAO tscongtyDAO = new TruSoCongTyDAO();
            tscongtyDAO.Them(tscongtyDTO);
        }

        // Sửa trụ sở công ty
        [WebMethod]
        public void SuaTruSoCongTy(TruSoCongTyDTO tscongtyDTO)
        {
            TruSoCongTyDAO tscongtyDAO = new TruSoCongTyDAO();
            tscongtyDAO.Sua(tscongtyDTO);
        }
        // Xóa trụ sở công ty

        [WebMethod]
        public void XoaTruSoCongTy(TruSoCongTyDTO tscongtyDTO)
        {
            TruSoCongTyDAO tscongtyDAO = new TruSoCongTyDAO();
            tscongtyDAO.Xoa(tscongtyDTO.IDTruSoCongTy);
        }
        #endregion


        #region "Loại trụ sở công ty"

        // Lấy danh sách loại trụ sở công ty ==> get
        [WebMethod]
        public List<LoaiTruSoDTO> GetDanhSachLoaiTruSoCongTy()
        {
            return daoLoaiTruSo.LayDanhSach();
        }


        // Lấy mã loại công ty
        [WebMethod]
        public List<LoaiTruSoDTO> GetMaLoaiTruSo()
        {
            return daoLoaiTruSo.LayMaLoaiTruSo();
        }

        #endregion


        #region "Ngành nghề kinh doanh"

        // Tìm theo mã Ngành nghề kinh doanh
        [WebMethod]
        public NganhNgheKinhDoanhDTO TimTheoMaNganhNgheKinhDoanh(int MaNganhNgheKinhDoanh)
        {
            return daoNganhNgheKinhDoanh.TimTheoMa(MaNganhNgheKinhDoanh);
        }

        // Tìm theo mã Ngành nghề kinh doanh
        [WebMethod]
        public NganhNgheKinhDoanhDTO TimTheoMaNNKD(int ma)
        {
            NganhNgheKinhDoanhDTO nnkdDTO = new NganhNgheKinhDoanhDTO();
            return nnkdDTO;
        }

        [WebMethod]
        public NganhNgheKinhDoanhDTO TimKiemNganhNgheKinhDoanhChinhTheoMaCongTy(int maCongTy)
        {
            return daoNganhNgheKinhDoanh.TimKiemNganhNgheKinhDoanhChinhTheoMaCongTy(maCongTy);
            
        }
        // lấy danh sách Ngành nghề kinh doanh
        [WebMethod]
        public List<NganhNgheKinhDoanhDTO> GetDanhSachNganhNgheKinhDoanhTheoMaCongTy(int MaCongTy)
        {
            return daoNganhNgheKinhDoanh.LayDanhSachTheoMaCongTy(MaCongTy);
        }


        // Thêm Ngành nghề kinh doanh
        [WebMethod]
        public void ThemNganhNgheKinhDoanh(NganhNgheKinhDoanhDTO nnkdDTO)
        {
            NganhNgheKinhDoanhDAO nnkdDAO = new NganhNgheKinhDoanhDAO();
            nnkdDAO.Them(nnkdDTO);
        }

        // Sửa Ngành nghề kinh doanh
        [WebMethod]
        public void SuaNganhNgheKinhDoanh(NganhNgheKinhDoanhDTO nnkdDTO)
        {
            NganhNgheKinhDoanhDAO nnkdDAO = new NganhNgheKinhDoanhDAO();
            nnkdDAO.Sua(nnkdDTO);
        }
        // Xóa Ngành nghề kinh doanh

        [WebMethod]
        public void XoaNganhNgheKinhDoanh(NganhNgheKinhDoanhDTO nnkdDTO)
        {
            NganhNgheKinhDoanhDAO nnkdoanhDAO = new NganhNgheKinhDoanhDAO();

            nnkdoanhDAO.Xoa(nnkdDTO.IDNganhNgheKinhDoanh);
        }

        #endregion


        #region "Loại ngành nghề"

        // Lấy danh sách Loại ngành nghề ==> get
        [WebMethod]
        public List<LoaiNganhNgheDTO> GetDanhSachLoaiNganhNgheKinhDoanh()
        {
            return daoLoaiNganhNghe.LayDanhSach();
        }


        // Lấy mã Loại ngành nghề
        [WebMethod]
        public List<LoaiNganhNgheDTO> GetMaLoaiNganhNgheKinhDoanh()
        {
            return daoLoaiNganhNghe.LayMaLoaiNganhNgheKinhDoanh();
        }

        #endregion


        #region "Chi nhánh"

        // Tìm theo mã chi nhánh
        [WebMethod]
        public ChiNhanhDTO TimTheoMaChiNhanh(int MaChiNhanh)
        {
            return daoChiNhanh.TimTheoMa(MaChiNhanh);
        }


        // lấy danh sách chi nhánh theo mã công ty
      

        // Thêm chi nhánh
        [WebMethod]
        public void ThemChiNhanh(ChiNhanhDTO cnhanhDTO)
        {
            ChiNhanhDAO cnhanhDAO = new ChiNhanhDAO();
            cnhanhDAO.Them(cnhanhDTO);
        }

        // Sửa chi nhánh
        [WebMethod]
        public void SuaChiNhanh(ChiNhanhDTO cnhanhDTO)
        {
            ChiNhanhDAO cnhanhDAO = new ChiNhanhDAO();
            cnhanhDAO.Sua(cnhanhDTO);
        }
        // Xóa chi nhánh

        [WebMethod]
        public void XoaChiNhanh(ChiNhanhDTO cnhanhDTO)
        {
            ChiNhanhDAO cnhanhDAO = new ChiNhanhDAO();
            cnhanhDAO.Xoa(cnhanhDTO.IDChiNhanh);
        }
        #endregion


        #region "Văn phòng đại diện"

        // Tìm theo mã văn phòng đại diện
        [WebMethod]
        public VanPhongDaiDienDTO TimTheoMaVanPhongDaiDien(int MaVanPhongDaiDien)
        {
            return daoVanPhongDaiDien.TimTheoMa(MaVanPhongDaiDien);
        }

        // lấy danh sách văn phòng đại diện
        [WebMethod]
        public List<VanPhongDaiDienDTO> GetDanhSachVanPhongDaiDien()
        {
            return daoVanPhongDaiDien.LayDanhSach();
        }

        // lấy danh sách văn phòng đại diện theo mã công ty
        [WebMethod]
        public List<VanPhongDaiDienDTO> GetDanhSachVanPhongDaiDienTheoMaCongTy(int MaCongTy)
        {
            return daoVanPhongDaiDien.LayDanhSachTheoMaCongTy(MaCongTy);
        }


        // Thêm văn phòng đại diện
        [WebMethod]
        public void ThemVanPhongDaiDien(VanPhongDaiDienDTO vpddienDTO)
        {
            VanPhongDaiDienDAO vpddienDAO = new VanPhongDaiDienDAO();
            vpddienDAO.Them(vpddienDTO);
        }

        // Sửa văn phòng đại diện
        [WebMethod]
        public void SuaVanPhongDaiDien(VanPhongDaiDienDTO vpddienDTO)
        {
            VanPhongDaiDienDAO vpddienDAO = new VanPhongDaiDienDAO();
            vpddienDAO.Sua(vpddienDTO);
        }
        // Xóa văn phòng đại diện

        [WebMethod]
        public void XoaVanPhongDaiDien(VanPhongDaiDienDTO vpddienDTO)
        {
            VanPhongDaiDienDAO vpddienDAO = new VanPhongDaiDienDAO();
            vpddienDAO.Xoa(vpddienDTO.IDVanPhongDaiDien);
        }
        #endregion


        #region "Chương"

        // Tìm theo mã chương
        [WebMethod]
        public ChuongDTO TimTheoMaChuong(int MaChuong)
        {
            return daoChuong.TimTheoMa(MaChuong);
        }

        // lấy danh sách chương theo mã công ty
        [WebMethod]
        public List<ChuongDTO> GetDanhSachChuongTheoMaLoaiCongTy(int MaLoaiCongTy)
        {
            return daoChuong.LayDanhSachTheoMaLoaiCongTy(MaLoaiCongTy);
        }

        // lấy danh sách chương
        [WebMethod]
        public List<ChuongDTO> GetDanhSachChuong()
        {
            return daoChuong.LayDanhSach();
        }

        // lấy danh sách số chương theo mã công ty
        [WebMethod]
        public List<ChuongDTO> GetDanhSachSoChuongTheoMaLoaiCongTy(int MaLoaiCongTy)
        {
            return daoChuong.LayDanhSachSoChuongTheoMaLoaiCongTy(MaLoaiCongTy);
        }

        // lấy danh sách số chương
        [WebMethod]
        public List<ChuongDTO> GetDanhSachSoChuong()
        {
            return daoChuong.LayDanhSachSoChuong();
        }
        
        // lấy danh sách tên chương theo mã công ty
        [WebMethod]
        public List<ChuongDTO> GetDanhSachTenChuongTheoMaLoaiCongTy(int MaLoaiCongTy)
        {
            return daoChuong.LayDanhSachTenChuongTheoMaLoaiCongTy(MaLoaiCongTy);
        }

        // lấy danh sách tên chương
        [WebMethod]
        public List<ChuongDTO> GetDanhSachTenChuong()
        {
            return daoChuong.LayDanhSachTen();
        }

        #endregion


        #region "Điều lệ"

        // Tìm theo mã điều lệ
        [WebMethod]
        public DieuLeDTO TimTheoMaDieuLe(int MaDieuLe)
        {
            return daoDieuLe.TimTheoMa(MaDieuLe);
        }


        // lấy danh sách điều lệ
        [WebMethod]
        public List<DieuLeDTO> GetDanhSachDieuLe()
        {
            return daoDieuLe.LayDanhSach();
        }

        // lấy danh sách điều lệ theo mã chương
        [WebMethod]
        public List<DieuLeDTO> GetDanhSachDieuLeTheoMaChuong(int MaChuong)
        {
            return daoDieuLe.LayDanhSachDieuLeTheoMaChuong(MaChuong);
        }

        // lấy danh sách tên điều lệ
        [WebMethod]
        public List<DieuLeDTO> GetDanhSachTenDieuLe()
        {
            return daoDieuLe.LayDanhSachTen();
        }

        // lấy danh sách tên điều lệ theo mã chương
        [WebMethod]
        public List<DieuLeDTO> GetDanhSachTenDieuLeTheoMaChuong(int MaChuong)
        {
            return daoDieuLe.LayDanhSachTenDieuLeTheoMaChuong(MaChuong);
        }

        // lấy danh sách số điều lệ
        [WebMethod]
        public List<DieuLeDTO> GetDanhSachSoDieuLe()
        {
            return daoDieuLe.LayDanhSachSoDieuLe();
        }


        // lấy danh sách số điều lệ theo mã chương
        [WebMethod]
        public List<DieuLeDTO> GetDanhSachSoDieuLeTheoMaChuong(int MaChuong)
        {
            return daoDieuLe.LayDanhSachSoDieuLeTheoMaChuong(MaChuong);
        }

        // lấy danh sách nội dung điều lệ
        [WebMethod]
        public List<DieuLeDTO> GetDanhSachNoiDungDieuLe()
        {
            return daoDieuLe.LayDanhSachNoiDung();
        }


        // lấy danh sách nội dung điều lệ theo mã chương
        [WebMethod]
        public List<DieuLeDTO> GetDanhSachNoiDungDieuLeTheoMaChuong(int MaChuong)
        {
            return daoDieuLe.LayDanhSachNoiDungDieuLeTheoMaChuong(MaChuong);
        }


        #endregion


        #region "Điều lệ soạn"

        // Tìm theo mã điều lệ soạn
        [WebMethod]
        public DieuLeSoanDTO TimTheoMaDieuLeSoan(int MaDieuLeSoan)
        {
            return daoDieuLeSoan.TimTheoMa(MaDieuLeSoan);
        }

        // lấy danh sách nội dung điều lệ soạn theo mã công ty
        [WebMethod]
        public List<DieuLeSoanDTO> GetDanhSachNoiDungDieuLeSoanTheoMaCongTy(int MaCongTy)
        {
            return daoDieuLeSoan.LayDSNoiDungDieuLeTheoMaCongTy(MaCongTy);
        }

        // lấy danh sách nội dung điều lệ soạn
        [WebMethod]
        public List<DieuLeSoanDTO> GetDanhSachNoiDungDieuLeSoan()
        {
            return daoDieuLeSoan.LayDanhSachNoiDung();
        }

        // lấy danh sách điều lệ soạn theo mã công ty
        [WebMethod]
        public List<DieuLeSoanDTO> GetDanhSachDieuLeSoanTheoMaCongTy(int MaCongTy)
        {
            return daoDieuLeSoan.LayDanhSachTheoMaCongTy(MaCongTy);
        }


        // lấy danh sách điều lệ soạn
        [WebMethod]
        public List<DieuLeSoanDTO> GetDanhSachDieuLeSoan()
        {
            return daoDieuLeSoan.LayDanhSach();
        }


        // Thêm điều lệ soạn
        [WebMethod]
        public void ThemDieuLeSoan(DieuLeSoanDTO dlesoanDTO)
        {
            DieuLeSoanDAO dlesoanDAO = new DieuLeSoanDAO();
            dlesoanDAO.Them(dlesoanDTO);
        }

        // Sửa điều lệ soạn
        [WebMethod]
        public void SuaDieuLeSoan(DieuLeSoanDTO dlesoanDTO)
        {
            DieuLeSoanDAO dlesoanDAO = new DieuLeSoanDAO();
            dlesoanDAO.Sua(dlesoanDTO);
        }
        // Xóa điều lệ

        [WebMethod]
        public void XoaDieuLeSoan(DieuLeSoanDTO dlesoanDTO)
        {
            DieuLeSoanDAO dlesoanDAO = new DieuLeSoanDAO();
            dlesoanDAO.Xoa(dlesoanDTO.IDDieuLeSoan);
        }

        #endregion

    }
}
